package com.szyt.basicframe.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.szyt.basicframe.pojo.entity.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.szyt.basicframe.pojo.request.usermanagement.CreateUserRequest;
import com.szyt.basicframe.pojo.request.usermanagement.SearchUserRequest;
import com.szyt.basicframe.pojo.request.usermanagement.UpdateUserRequest;
import com.szyt.basicframe.pojo.vo.UserDetailsVO;
import com.szyt.basicframe.pojo.vo.UserListItemVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author mx
 * @since 2025-06-29
 */
public interface ISysUserService extends IService<SysUser> {
    boolean createUser(CreateUserRequest request);

    List<SysUser> findUserByIds(List<Long> userIds);

    SysUser findUserById(Long userId);

    IPage<UserListItemVO> searchUsers(SearchUserRequest request);

    UserDetailsVO getUserDetails(Long id);

    boolean existUserName(Long userId, String userName);

    boolean updateUser(UpdateUserRequest updateRequest);

    boolean disableUser(Long userId);

    boolean enableUser(Long userId);

    boolean delete(Long userId);
}
